package br.com.infnet.posgraduacao.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

import br.com.infnet.cultbook.domain.pedido.ItemPedido;
import br.com.infnet.cultbook.domain.pedido.Pedido;
import br.com.infnet.cultbook.domain.produto.Livro;
import br.com.infnet.cultbook.service.CarrinhoService;


@ManagedBean(name = "pedidoBean")
@RequestScoped
public class PedidoBean {

	@ManagedProperty(value="#{clienteLoginBean}")
	private ClienteLoginBean clienteLoginBean;
	
	@ManagedProperty(value="#{carrinhoBean}")
	private CarrinhoBean carrinhoBean;
	
	private Pedido pedido;
	
	/*Constantes de Retorno*/
	
	private final String LOGIN = "login";
	private final String CARRINHO = "carrinho";
	
	
	public String comprar(Livro produto) {
		ItemPedido itemPedido = new ItemPedido();
		
		itemPedido.setLivro(produto);
		itemPedido.setQuantidade(1);
		
		CarrinhoService carrinhoService = carrinhoBean.getCarrinhoService();
		carrinhoService.adicionarItemPedido(itemPedido);
		
		/*Adiciona produto no carrinho EJB*/		
		return (!verificaUsuarioLogado()) ? LOGIN : CARRINHO;		
	}
	
	public String fecharPedido() {
		pedido = getCarrinhoBean().getCarrinhoService().fecharPedido();
		return "pedido";
	}

	private boolean verificaUsuarioLogado() {
		return clienteLoginBean.getLoginService().verificaLogin();
	}

	public CarrinhoBean getCarrinhoBean() {
		return carrinhoBean;
	}

	public void setCarrinhoBean(CarrinhoBean carrinhoBean) {
		this.carrinhoBean = carrinhoBean;
	}

	public ClienteLoginBean getClienteLoginBean() {
		return clienteLoginBean;
	}

	public void setClienteLoginBean(ClienteLoginBean clienteLoginBean) {
		this.clienteLoginBean = clienteLoginBean;
	}

	public Pedido getPedido() {
		return pedido;
	}

	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
	}
	
}
